﻿CREATE PROCEDURE [dbo].[SaveAdressen]
	@inAdressID uniqueidentifier,
	@inAdressType nvarchar(50),
	@inOrgKey int = null,
	@inOrt nvarchar(50),
	@inPostleitzahl nvarchar(20),
	@inStraße nvarchar(50)
AS
begin
	
	merge into dbo.Adressen as t
	using (
		select
			@inAdressID 'AdressID',
			@inAdressType 'AdressType',
			@inOrgKey 'OrgKey',
			@inOrt 'Ort',
			@inPostleitzahl 'Postleitzahl',
			@inStraße 'Straße'
		) as s on
			s.AdressID = t.AdressID
		when not matched by target then
		insert (
			AdressID,
			AdressType,
			OrgKey,
			Ort,
			Postleitzahl,
			Straße
		)
		values (
			s.AdressID,
			s.AdressType,
			s.OrgKey,
			s.Ort,
			s.Postleitzahl,
			s.Straße
		)
		when matched then
		update
			set 
				AdressType = s.AdressType,
				OrgKey = s.OrgKey,
				Ort = s.Ort,
				Postleitzahl = s.Postleitzahl,
				Straße = s.Straße
		;
end
GO
GRANT EXECUTE
    ON OBJECT::[dbo].[SaveAdressen] TO PUBLIC
    AS [dbo];

